package ar.com.e2solver.solver.operator.mutation;

import ar.com.e2solver.solver.operator.mutation.impl.ColumnExchangeMutationOperator;
import ar.com.e2solver.solver.operator.mutation.impl.RowColumnExchangeMutationOperator;
import ar.com.e2solver.solver.operator.mutation.impl.RowExchangeMutationOperator;
import ar.com.e2solver.solver.operator.mutation.impl.SwapAndRotateMutationOperator;

public final class MutationOperatorFactory {
	
	private MutationOperatorFactory(){}

	public static MutationOperator getOperator(int operationNumber) {
		MutationOperator operator = null;
		switch (operationNumber) {
		//case 0:
			//operator = SwapMutationOperator.getInstance();
			
		case 0:
			operator = ColumnExchangeMutationOperator.getInstance();
			break;
		case 1:
			operator = RowExchangeMutationOperator.getInstance();
			break;
		/*case 2:
			operator = RowColumnExchangeMutationOperator.getInstance();
			break;*/
		/*case 2:
			operator = RegionRotateMutationOperator.getInstance();
			break;
		case 4:
			operator = RotateMutationOperator.getInstance();
			break;*/
		default:
			operator = SwapAndRotateMutationOperator.getInstance();
			break;
		}
		return operator;
	}

	
}
